<?php
declare(strict_types=1);

namespace Dreamcat\ApiDoc\Popo;


use ReflectionFunctionAbstract;

/**
 * 路由配置中的入口方法
 * @author vijay
 */
class RouterEntranceDefinition
{
    /** @var string http接口地址 */
    private string $uri;
    /** @var string http方法 */
    private string $method;
    /** @var ReflectionFunctionAbstract 控制器入口反射 */
    private ReflectionFunctionAbstract $action;

    /**
     * @return string http接口地址
     */
    public function getUri(): string
    {
        return $this->uri;
    }

    /**
     * @param string $uri http接口地址
     * @return static 对象本身
     */
    public function setUri(string $uri): RouterEntranceDefinition
    {
        $this->uri = $uri;
        return $this;
    }

    /**
     * @return string http方法
     */
    public function getMethod(): string
    {
        return $this->method;
    }

    /**
     * @param string $method http方法
     * @return static 对象本身
     */
    public function setMethod(string $method): RouterEntranceDefinition
    {
        $this->method = $method;
        return $this;
    }

    /**
     * @return ReflectionFunctionAbstract 入口方法名
     */
    public function getAction(): ReflectionFunctionAbstract
    {
        return $this->action;
    }

    /**
     * @param ReflectionFunctionAbstract $action 入口方法名
     * @return static 对象本身
     */
    public function setAction(ReflectionFunctionAbstract $action): RouterEntranceDefinition
    {
        $this->action = $action;
        return $this;
    }
}

# end of file
